package br.com.dp.dao.entidade;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Time;
import java.util.List;


/**
 * The persistent class for the propriedade database table.
 * 
 */
@Entity
@Table(name="propriedade")
@NamedQuery(name="Propriedade.findAll", query="SELECT p FROM Propriedade p")
public class Propriedade implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(unique=true, nullable=false)
	private int id;

	private int estacionamento;

	private Time horaFinalEntrada;

	private Time horaFinalSaida;

	private Time horaInicialEntrada;

	private Time horaInicialSaida;

	private int internet;

	private byte isAceitaAnimal;

	private byte isAceitaCrianca;

	private byte isCobradoAnimal;

	//bi-directional many-to-many association to Alimentacao
	@ManyToMany(mappedBy="propriedades1")
	private List<Alimentacao> alimentacaos1;

	//bi-directional many-to-many association to AreaComum
	@ManyToMany(mappedBy="propriedades1")
	private List<AreaComum> areaComums1;

	//bi-directional many-to-many association to Atividade
	@ManyToMany(mappedBy="propriedades1")
	private List<Atividade> atividades1;

	//bi-directional one-to-one association to Destaque
	@OneToOne(mappedBy="propriedade")
	private Destaque destaque;

	//bi-directional many-to-many association to Diverso
	@ManyToMany(mappedBy="propriedades1")
	private List<Diverso> diversos1;

	//bi-directional many-to-many association to Entretenimento
	@ManyToMany(mappedBy="propriedades1")
	private List<Entretenimento> entretenimentos1;

	//bi-directional many-to-one association to FotoHotel
	@OneToMany(mappedBy="propriedade")
	private List<FotoHotel> fotoHotels;

	//bi-directional many-to-many association to Idioma
	@ManyToMany(mappedBy="propriedades1")
	private List<Idioma> idiomas1;

	//bi-directional many-to-many association to Lazer
	@ManyToMany(mappedBy="propriedades1")
	private List<Lazer> lazers1;

	//bi-directional many-to-many association to Limpeza
	@ManyToMany(mappedBy="propriedades1")
	private List<Limpeza> limpezas1;

	//bi-directional many-to-many association to Alimentacao
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_alimentacao"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idAlimentacao", nullable=false)
			}
		)
	private List<Alimentacao> alimentacaos2;

	//bi-directional many-to-many association to AreaComum
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_area_comum"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idAreaComum", nullable=false)
			}
		)
	private List<AreaComum> areaComums2;

	//bi-directional many-to-many association to Atividade
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_atividade"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idAtividade", nullable=false)
			}
		)
	private List<Atividade> atividades2;

	//bi-directional many-to-many association to Diverso
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_diversos"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idDiversos", nullable=false)
			}
		)
	private List<Diverso> diversos2;

	//bi-directional many-to-many association to Entretenimento
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_entretenimento"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idEntretenimento", nullable=false)
			}
		)
	private List<Entretenimento> entretenimentos2;

	//bi-directional one-to-one association to Hotel
	@OneToOne
	@JoinColumn(name="id", nullable=false, insertable=false, updatable=false)
	private Hotel hotel;

	//bi-directional many-to-many association to Idioma
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_idioma"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idIdioma", nullable=false)
			}
		)
	private List<Idioma> idiomas2;

	//bi-directional many-to-many association to Lazer
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_lazer"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idLazer", nullable=false)
			}
		)
	private List<Lazer> lazers2;

	//bi-directional many-to-many association to Limpeza
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_limpeza"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idLimpeza", nullable=false)
			}
		)
	private List<Limpeza> limpezas2;

	//bi-directional many-to-many association to TipoCartao
	@ManyToMany
	@JoinTable(
		name="asc_propriedade_cartao"
		, joinColumns={
			@JoinColumn(name="idPropriedade", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="idCartao", nullable=false)
			}
		)
	private List<TipoCartao> tipoCartaos1;

	//bi-directional many-to-many association to Recepcao
	@ManyToMany(mappedBy="propriedades")
	private List<Recepcao> recepcaos;

	//bi-directional many-to-many association to TipoCartao
	@ManyToMany(mappedBy="propriedades2")
	private List<TipoCartao> tipoCartaos2;

	//bi-directional many-to-many association to Transporte
	@ManyToMany(mappedBy="propriedades")
	private List<Transporte> transportes;

	public Propriedade() {
	}

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getEstacionamento() {
		return this.estacionamento;
	}

	public void setEstacionamento(int estacionamento) {
		this.estacionamento = estacionamento;
	}

	public Time getHoraFinalEntrada() {
		return this.horaFinalEntrada;
	}

	public void setHoraFinalEntrada(Time horaFinalEntrada) {
		this.horaFinalEntrada = horaFinalEntrada;
	}

	public Time getHoraFinalSaida() {
		return this.horaFinalSaida;
	}

	public void setHoraFinalSaida(Time horaFinalSaida) {
		this.horaFinalSaida = horaFinalSaida;
	}

	public Time getHoraInicialEntrada() {
		return this.horaInicialEntrada;
	}

	public void setHoraInicialEntrada(Time horaInicialEntrada) {
		this.horaInicialEntrada = horaInicialEntrada;
	}

	public Time getHoraInicialSaida() {
		return this.horaInicialSaida;
	}

	public void setHoraInicialSaida(Time horaInicialSaida) {
		this.horaInicialSaida = horaInicialSaida;
	}

	public int getInternet() {
		return this.internet;
	}

	public void setInternet(int internet) {
		this.internet = internet;
	}

	public byte getIsAceitaAnimal() {
		return this.isAceitaAnimal;
	}

	public void setIsAceitaAnimal(byte isAceitaAnimal) {
		this.isAceitaAnimal = isAceitaAnimal;
	}

	public byte getIsAceitaCrianca() {
		return this.isAceitaCrianca;
	}

	public void setIsAceitaCrianca(byte isAceitaCrianca) {
		this.isAceitaCrianca = isAceitaCrianca;
	}

	public byte getIsCobradoAnimal() {
		return this.isCobradoAnimal;
	}

	public void setIsCobradoAnimal(byte isCobradoAnimal) {
		this.isCobradoAnimal = isCobradoAnimal;
	}

	public List<Alimentacao> getAlimentacaos1() {
		return this.alimentacaos1;
	}

	public void setAlimentacaos1(List<Alimentacao> alimentacaos1) {
		this.alimentacaos1 = alimentacaos1;
	}

	public List<AreaComum> getAreaComums1() {
		return this.areaComums1;
	}

	public void setAreaComums1(List<AreaComum> areaComums1) {
		this.areaComums1 = areaComums1;
	}

	public List<Atividade> getAtividades1() {
		return this.atividades1;
	}

	public void setAtividades1(List<Atividade> atividades1) {
		this.atividades1 = atividades1;
	}

	public Destaque getDestaque() {
		return this.destaque;
	}

	public void setDestaque(Destaque destaque) {
		this.destaque = destaque;
	}

	public List<Diverso> getDiversos1() {
		return this.diversos1;
	}

	public void setDiversos1(List<Diverso> diversos1) {
		this.diversos1 = diversos1;
	}

	public List<Entretenimento> getEntretenimentos1() {
		return this.entretenimentos1;
	}

	public void setEntretenimentos1(List<Entretenimento> entretenimentos1) {
		this.entretenimentos1 = entretenimentos1;
	}

	public List<FotoHotel> getFotoHotels() {
		return this.fotoHotels;
	}

	public void setFotoHotels(List<FotoHotel> fotoHotels) {
		this.fotoHotels = fotoHotels;
	}

	public FotoHotel addFotoHotel(FotoHotel fotoHotel) {
		getFotoHotels().add(fotoHotel);
		fotoHotel.setPropriedade(this);

		return fotoHotel;
	}

	public FotoHotel removeFotoHotel(FotoHotel fotoHotel) {
		getFotoHotels().remove(fotoHotel);
		fotoHotel.setPropriedade(null);

		return fotoHotel;
	}

	public List<Idioma> getIdiomas1() {
		return this.idiomas1;
	}

	public void setIdiomas1(List<Idioma> idiomas1) {
		this.idiomas1 = idiomas1;
	}

	public List<Lazer> getLazers1() {
		return this.lazers1;
	}

	public void setLazers1(List<Lazer> lazers1) {
		this.lazers1 = lazers1;
	}

	public List<Limpeza> getLimpezas1() {
		return this.limpezas1;
	}

	public void setLimpezas1(List<Limpeza> limpezas1) {
		this.limpezas1 = limpezas1;
	}

	public List<Alimentacao> getAlimentacaos2() {
		return this.alimentacaos2;
	}

	public void setAlimentacaos2(List<Alimentacao> alimentacaos2) {
		this.alimentacaos2 = alimentacaos2;
	}

	public List<AreaComum> getAreaComums2() {
		return this.areaComums2;
	}

	public void setAreaComums2(List<AreaComum> areaComums2) {
		this.areaComums2 = areaComums2;
	}

	public List<Atividade> getAtividades2() {
		return this.atividades2;
	}

	public void setAtividades2(List<Atividade> atividades2) {
		this.atividades2 = atividades2;
	}

	public List<Diverso> getDiversos2() {
		return this.diversos2;
	}

	public void setDiversos2(List<Diverso> diversos2) {
		this.diversos2 = diversos2;
	}

	public List<Entretenimento> getEntretenimentos2() {
		return this.entretenimentos2;
	}

	public void setEntretenimentos2(List<Entretenimento> entretenimentos2) {
		this.entretenimentos2 = entretenimentos2;
	}

	public Hotel getHotel() {
		return this.hotel;
	}

	public void setHotel(Hotel hotel) {
		this.hotel = hotel;
	}

	public List<Idioma> getIdiomas2() {
		return this.idiomas2;
	}

	public void setIdiomas2(List<Idioma> idiomas2) {
		this.idiomas2 = idiomas2;
	}

	public List<Lazer> getLazers2() {
		return this.lazers2;
	}

	public void setLazers2(List<Lazer> lazers2) {
		this.lazers2 = lazers2;
	}

	public List<Limpeza> getLimpezas2() {
		return this.limpezas2;
	}

	public void setLimpezas2(List<Limpeza> limpezas2) {
		this.limpezas2 = limpezas2;
	}

	public List<TipoCartao> getTipoCartaos1() {
		return this.tipoCartaos1;
	}

	public void setTipoCartaos1(List<TipoCartao> tipoCartaos1) {
		this.tipoCartaos1 = tipoCartaos1;
	}

	public List<Recepcao> getRecepcaos() {
		return this.recepcaos;
	}

	public void setRecepcaos(List<Recepcao> recepcaos) {
		this.recepcaos = recepcaos;
	}

	public List<TipoCartao> getTipoCartaos2() {
		return this.tipoCartaos2;
	}

	public void setTipoCartaos2(List<TipoCartao> tipoCartaos2) {
		this.tipoCartaos2 = tipoCartaos2;
	}

	public List<Transporte> getTransportes() {
		return this.transportes;
	}

	public void setTransportes(List<Transporte> transportes) {
		this.transportes = transportes;
	}

}